#ifndef SCHEDULER_H
#define SCHEDULER_H

class Scheduler
{
public:
	Scheduler(std::string filename);
	void generateArrays(double lambda);
	void runSJF();
	void runRR();
	void runFCFS();
	void runSimulation();
	void processData(Task*);
private:
	Task **Cores;	//These are the cores of the processor, they only need to know what task they're executing, don't need any internal data.
	Task *SJFTasks, *RRTasks, *FCFSTasks;

	void sortSJF();
	
	int contextSwitchTime,
		RRQuantum,
		nextProcessIndex,
		numCores,
		numProcesses,
		compCheck;

};

#endif
